//整数转换。编写一个函数，确定需要改变几个位才能将整数 A 转成整数 B 。
//先异或，然后逻辑与来找1的个数
#pragma warning(disable:4996)
#include<stdio.h>
//千万注意 tmp类型为unsigned int
//当0^1时，结果为32个1，是int类型最小值，进行运算时还要-1，就会导致负数溢出
int convertInteger(int A, int B)
{
	unsigned int tmp = A ^ B;
	int count = 0;

	while (tmp)
	{
		tmp &= (tmp - 1);
		count++;
	}
	return count;
}
int main()
{
	
	int A, B;
	scanf("%d %d", &A,&B);
	printf("%d\n", convertInteger(A, B));
	return 0;
}